perm filename SORT.VRP[TIM,LSP] blob sn#617897 filedate 1981-10-12 generic text, type T, neo UTF8
(DEFINEQ (DCONS (A B C)
	(CONS (CONS A (CAR C)) (CONS B (CDR C))))

(SPLIT (A)  
	    (COND
		((NULL A)	(CONS NIL NIL))
		((NULL (CDR A))	(CONS A NIL))
		(T		(DCONS (CAR A) (CADR A) (SPLIT (CDDR A))))))

(←MERGE (A B)
	    (COND
		((NULL A) 	B)
		((NULL B) 	A)
		((NOT (GREATERP (CAR A) (CAR B)))
				(CONS (CAR A) (←MERGE (CDR A) B)))
		(T		(CONS (CAR B) (←MERGE A (CDR B))))))

(←SORT (A)
    (PROG (X)
	(SETQ X (SPLIT A))
	(RETURN (COND 
			((LESSP (LENGTH A) 2)	A)
			(T (←MERGE (←SORT (CAR X)) (←SORT (CDR X))))))))



(RAND ()
	(REMAINDER (SETQ SEED (TIMES SEED 30479)) 32768))

(RANDL (N)
	(COND
		((ZEROP N)	NIL)
		(T		(CONS (RAND) (RANDL (SUB1 N))))))

(RUN ()
	(PROG (I X)
		(SETQ I 0)
		(SETQ FORMULA (RANDL 400))
	START	(←SORT FORMULA)
		(COND ((LESSP (SETQ I (ADD1 I)) 50) (GO START))))
		(PRINT (←SORT FORMULA))))

(SETQ SEED 12345)
STOP